/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package datos;

import dominio.Asignatura;
import dominio.Seccion;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Mauro
 */
public class SeccionDatos extends BaseDeDatos {

    public SeccionDatos() {
    }

    public boolean insertarSeccion(Seccion seccion) throws SQLException {
        boolean insertado=true;
        Connection con = this.getConexion();
        PreparedStatement ps = con.prepareStatement("INSERT INTO seccion VALUES(?,?)");
        try {
            ps.setString(1, seccion.getIdentificadorSeccion());
            ps.setInt(2, seccion.getCantidadEstudiantes());
            ps.execute();
        } catch (SQLException e) {
            System.err.println("SQLException: " + e.getMessage());
            insertado=false;
        } finally {
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    System.err.println("SQLException: " + e.getMessage());
                }
            }
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    System.err.println("SQLException: " + e.getMessage());
                }
            }
        }
        return insertado;
    }
    
    public void insertarAsignaturasPorSeccion(Seccion seccion) throws SQLException{
          Connection con = SeccionDatos.getConexion();
        PreparedStatement ps = con.prepareStatement("INSERT INTO asignatura_seccion VALUES(?,?)");
        try {
            for (Asignatura asignaturaActual : seccion.getAsignaturas()) {
                ps.setString(1, seccion.getIdentificadorSeccion());
                ps.setString(2, asignaturaActual.getSigla());
                ps.execute();
            }
        } catch (SQLException e) {
            System.err.println("SQLException: " + e.getMessage());
        } finally {
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    System.err.println("SQLException: " + e.getMessage());
                }
            }
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    System.err.println("SQLException: " + e.getMessage());
                }
            }
        }
    
    }
    
    public void editarSeccion(Seccion seccionEditada) throws SQLException {

        Connection conexion = SeccionDatos.getConexion();
        PreparedStatement ps= conexion.prepareStatement("UPDATE seccion SET\n"
                    + " identificador_seccion=" + seccionEditada.getIdentificadorSeccion() + " \n"
                    + " cantidad_estudiantes=" + seccionEditada.getCantidadEstudiantes() + "\n"
                    + "WHERE identificador_seccion like '%" + seccionEditada + "%'");;
        try {
            boolean condicion = ps.execute();

        } catch (SQLException e) {
            System.err.println("SQLException: " + e.getMessage());
        } finally {
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    System.err.println("SQLException: " + e.getMessage());
                }
            }
            if (conexion != null) {
                try {
                    conexion.close();
                } catch (SQLException e) {
                    System.err.println("SQLException: " + e.getMessage());
                }
            }
        }
        
        
        
           
        
        
    }
    
    public LinkedList<Seccion> getSeccion() throws SQLException {
        Connection conexion = BaseDeDatos.getConexion();
        LinkedList<Seccion> secciones = new LinkedList<>();
        try {

            String sqlSelect = "SELECT * FROM seccion";
            Statement stm = conexion.createStatement();
            ResultSet result = stm.executeQuery(sqlSelect);
            while (result.next() == true) {
                Seccion s = new Seccion();
                s.setIdentificadorSeccion(result.getString(1));
                s.setCantidadEstudiantes(result.getInt(2));
                secciones.add(s);
            }
            return secciones;
        } catch (Exception e) {
            System.err.println("SQLException: " + e.getMessage());
        } finally {
            if (conexion != null) {
                try {
                    conexion.close();
                } catch (SQLException e) {
                    System.err.println("SQLException: " + e.getMessage());
                }
            }
        }
        return secciones;
    }

}
    
    

